#ifndef _FOSSIL_TEXTUREMANAGER_H
#define _FOSSIL_TEXTUREMANAGER_H

#include "Singleton.h"

#include <map>

namespace Fossil
{
	//Forward declarations
	class Texture;

	class TextureManager : public Singleton<TextureManager>
	{
	public:
		TextureManager(void) {}
		~TextureManager(void) {}

		void Initialise();
		void Destroy();

		Texture* GetTexture(const char* Filename);

	private:
		TextureManager(const TextureManager& ) {}
		TextureManager* operator = (const TextureManager& ) {}

		Texture* LoadTexture(const char* Filename);

		typedef std::map<const char*, Texture*> TextureMap;
		typedef std::map<const char*, Texture*>::iterator TextureMapIterator;
		TextureMap m_Textures;
	};
};

#endif//_FOSSIL_TEXTUREMANAGER_H
